import { defineStore } from 'pinia'
import { getInfoUser, loginOut } from '../../api/user'
import { ElMessage } from 'element-plus'
export const useUserStore = defineStore({
  // id: 必须的，在所有 Store 中唯一
  id: 'ddfUserStat',
  // state: 返回对象的函数
  state: () => ({
    // 登录token
    token: null,
    // 登录用户信息
    userInfo: {
      phone: '',
      name: '',
      nickname: '',
      id: null,
      avatar: null,
    },
    account: '',
    row: {
      tokenValue: null, //登录token
      expireIn: null, //过期时间
      tokenStartTime: null, //登录当前时间
      refreshToken: null, //刷新token
      tokenName: null,
    },
    // 角色
    roles: ['admin'],
    role: [],
  }),
  getters: {},
  // 可以同步 也可以异步
  actions: {
    // 登录
    async login_in() {},
    getRoles(token) {
      return new Promise((resolve, reject) => {
        resolve(this.roles)
      })
    },
    getInfo() {
      getInfoUser().then((res) => {
        this.userInfo = res.data.data
      })
    },
    // 退出
    logout() {
      return new Promise((resolve, reject) => {
        loginOut().then((res) => {
          if (res.data.code == 20000) {
            this.row = {
              tokenValue: null, //登录token
              expireIn: null, //过期时间
              tokenStartTime: null, //登录当前时间
              refreshToken: null, //刷新token
              tokenName: null,
            }
            this.token = null
            this.roles = []
            resolve(null)
          } else {
            ElMessage({
              message: res.data.message,
              type: 'warning',
            })
            return
          }
        })
      })
    },
  },
  // 进行持久化存储
  persist: {
    // 本地存储的名称
    key: 'ddfUserStat',
    //保存的位置
    storage: window.localStorage, //localstorage
  },
})
